package linkedlist01;

import java.util.LinkedList;
/**
 * LinkedList<E>中特有的方法:
 *    public void addFirst(E e):向集合的开头位置添加元素
 *    public void addLast(E e):向集合的末尾添加元素
 *
 *    public E getFirst():获取集合头部的元素
 *    public E getLast():获取集合尾部的元素
 *    public E get(int index):取出指定位置的元素
 *
 *    public E removeFirst():移除头部元素,并且返回当前被删除的元素
 *    public E removeLast():移除尾部的元素,并且返回当前被删除的元素
 *
 */
public class LinkedListDemo01 {
    public static void main(String[] args) {
        //method01();
        //method02();
        //method03();
        LinkedList<String> ll = new LinkedList<>() {{
            add("小新");
            add("小白");
            add("小花");
        }};
        System.out.println(ll.removeFirst());
        System.out.println(ll);

        System.out.println(ll.removeLast());
        System.out.println(ll);
    }

    private static void method03() {
        LinkedList<String> ll = new LinkedList<>() {{
            add("小新");
            add("小白");
            add("小花");
        }};
        System.out.println(ll.getFirst());
        System.out.println(ll.getLast());
        System.out.println(ll.get(1));
    }

    private static void method02() {
        LinkedList<String> ll = new LinkedList<>(){{
           addLast("小花");
           addLast("小新");
           addLast("小明");
        }};
        System.out.println(ll);//[小花, 小新, 小明]
    }

    private static void method01() {
        LinkedList<String> ll = new LinkedList<>();
        ll.addFirst("abc");
        ll.addFirst("def");
        ll.addFirst("ghk");
        System.out.println(ll);//[ghk, def, abc]
    }
}
